package code.part01_base;

import org.junit.jupiter.api.Test;

import java.util.Arrays;
/*
		1、写出某种排序算法
			冒泡排序
			选择排序
			插入排序
			快速排序
		2、排序算法的时间复杂度（空间复杂度）
			衡量一个数据结构是否合适的衡量标准
		3、排序算法的稳定性
			排序之后的值跟排序之前的值位置是否发生变化
		
*/

/**
 * @author: ZJT
 * @Time: 2021/7/6
 * @Description: 排序
 */
public class P08_ArraySort {

    //定义数组
    private int[] array = new int[]{4, 1, 7, 2, 9, 3, 5, 8, 6};

    /**
     * @author: ZJT
     * @Time: 2021/7/6
     * @Description: 冒泡排序
     * @param:
     * @return:
     * @throws:
     */
    @Test
    public void bubbleSort() {

        //将数组进行排序操作，从小到大
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    int tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }
            }
        }
    }

    /**
     * @author: ZJT
     * @Time: 2021/7/6
     * @Description: 选择排序
     * @param:
     * @return:
     * @throws:
     */
    @Test
    public void selectSort() {

        //将数组进行排序操作，从小到大
        //冒泡排序
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    int tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }
            }
        }
    }

}